<?php
/*
+--------------------------------------------------------------------------
|   Web: http://EnBac.com 
|   Update date : 14/12/2010
+---------------------------------------------------------------------------
|   > Script written by TuanNK
+---------------------------------------------------------------------------
*/

if (eregi(basename( __FILE__ ), $_SERVER['PHP_SELF'])) {
	print "<h1>Incorrect access</h1>You cannot access this file directly.";
	exit;
}

class ajax_payment 
{
	function playme()
	{
		$code = AZLib::getParam('code');

		switch( $code )
		{
			case 'ebd_payment':
				$this->ebd_payment();
				break;
			case 'ebu_payment':
				$this->ebu_payment();
				break;
			case 'ebd_premium_payment':
				$this->ebd_premium_payment();
				break;
			case 'ebu_premium_payment':
				$this->ebu_premium_payment();
				break;
            case 'check_item_id':
				$this->check_item_id();
				break;
			case 'payment_vip_finish':
				$this->payment_vip_finish();
				break;
			case 'check_slot_vip':
				$this->check_slot_vip();
				break;
			case 'display_date_ordered':
				$this->display_date_ordered();
				break;
			case 'card_payment':
				$this->card_payment();
				break;
			case 'card_payment_item':
				$this->card_payment_item();
				break;
			case 'payment_bill':
				$this->payment_bill();
				break;
			case 'get_cart':
				$this->get_cart();
				break;
			case 'add_to_cart':
				$this->add_to_cart();
				break;
			case 'update_to_cart':
				$this->update_to_cart();
				break;
			case 'del_cart':
				$this->del_cart();
				break;
			default:
				$this->home();
				break;
		}
	}

	function home(){
		global $display;
		die("Nothing to do...");
	}

    function ebd_payment()
    {
        if(!User::is_login())
        {
			echo "not_login";
			exit;
		}

		if(User::is_block())
		{
			echo "no_perm";
			exit;
		}
        
        $item_id		= (int)Url::get('item_id');
        $item			= false;
        $service_code	= strtoupper(Url::get('service_code'));
        $full_name		= Url::get('full_name');
        $mobile			= Url::get('mobile');
        
        $user			= User::$current->data;
        
        if($service_code && isset(SohaPay::$ebp[$service_code]))
        {
	        if($item_id)
	        {
	        	$item 		= Item::get_item($item_id);
	        }
	        
	        if($item)
	        { 
	        	if($item['user_id'] == $user['id'])//Nếu là chủ tin đăng
	        	{
		            //Check trạng thái tin và quyền thao tác:
		            if ($item['status'] != 1)//Tin bị kiểm duyệt
		            {
		                if ((in_array($item['status'], array(0, 2, 3, 5))))//Nếu tin bị ẩn || kiểm duyệt || tin ko trung thực || tin chưa được chứng thực trong danh mục yêu cầu chứng thực
		                {
		                    echo "item_invalid";
		                    exit;
		                } elseif ($item['status'] == -1 && !User::have_permit(ADMIN_ITEM)) {//Nếu tin ở trạng thái xóa
		                    echo "item_not_exist";
		                    exit;
		                }
		            }
	            }
	            else 
	            {
	            	echo "no_perm";
	        	 	exit;
	            }
	        }
	        else
	        {
	        	 echo "item_not_exist";
	        	 exit;
	        }
	       
        	if(!$full_name || !$mobile)//Phải nhập tên và số điện thoại liên hệ
            {
                echo "error_info";
                exit;
            }
            
            
            $return_url         = WEB_ROOT."payment_complete.html?service_code=$service_code&item_id=$item_id&mobile=$mobile";
            $transaction_info   = "Thanh toán Dịch vụ $service_code (mua ".SohaPay::$ebp[$service_code]['des']." trị giá ". number_format(SohaPay::$ebp[$service_code]['price'],0,'','.')." VNĐ) cho tin có ID $item_id của $full_name [ {$user['user_name']} ], số ĐT liên hệ: $mobile";
            $order_email        = $user['email'];
            $price              = (int)SohaPay::$ebp[$service_code]['price'];
            
            
            $payment_ebp = array(
								    "item_id"  		=> $item_id,
								    "log_id"  		=> 0,
								    "user_id"  		=> User::id(),
								    "user_name"  	=> User::user_name(),
								    "service_type"  => SohaPay::$ebp[$service_code]['type'],
								    "service_code"  => $service_code,
								    "payment_info"  => $transaction_info,
								    "order_code"  	=> '',
								    "price"  		=> $price,
								    "time"  		=> TIME_NOW,
								    "payment_time"  => 0,
								    "error_text"  	=> '',
								    "payment_status"=> 0,//0:paying; 1: lỗi;2: thành công
								    "sent_mail"  	=> 0,
								    "mobile"  		=> $this->check_mobile($mobile),
								);
								
			$payid = DB::insert("payment_ebp",$payment_ebp);
										
			if($payid)
			{
				$order_code         = "{$service_code}_$payid";
				
				if(DB::update("payment_ebp",array("order_code" => $order_code),"id=$payid"))
				{
		            //Tạo link thanh toán đến Soha Payment
		            $url= SohaPay::buildCheckoutUrl($return_url, $transaction_info, $order_code, $price, $order_email,EBP_MERCHANT_SITE_CODE,EBP_SECURE_CODE);
		            echo $url;
		            exit;
		     	}
	     	}
	     }
	     
	     echo "error_service";
         exit;
    }

    function ebu_payment()
    {
        if(!User::is_login())
        {
			echo "not_login";
			exit;
		}

		if(User::is_block())
		{
			echo "no_perm";
			exit;
		}
        
        $service_code	= strtoupper(Url::get('service_code'));

        $full_name		= Url::get('full_name');
        $mobile			= Url::get('mobile');
        
        $user			= User::$current->data;
        
        if($service_code && isset(SohaPay::$ebp[$service_code]))
        {
        	if(!$full_name || !$mobile)//Phải nhập tên và số điện thoại liên hệ
            {
                echo "error_info";
                exit;
            }
            
            //$order_code         = "{$service_code}_{$user['user_name']}_".TIME_NOW;
            $return_url         = WEB_ROOT."payment_complete.html?service_code=$service_code&user_name={$user['user_name']}";
            $transaction_info   = "Thanh toán Dịch vụ $service_code (mua ".SohaPay::$ebp[$service_code]['des']." trị giá ". number_format(SohaPay::$ebp[$service_code]['price'],0,'','.')." VNĐ) cho tài khoản {$user['user_name']} của $full_name, số ĐT liên hệ: $mobile";
            $order_email        = $user['email'];
            $price              = (int)SohaPay::$ebp[$service_code]['price'];
            
             
            $payment_ebp = array(
								    "item_id"  		=> 0,
								    "log_id"  		=> 0,
								    "user_id"  		=> User::id(),
								    "user_name"  	=> User::user_name(),
								    "service_type"  => SohaPay::$ebp[$service_code]['type'],
								    "service_code"  => $service_code,
								    "payment_info"  => $transaction_info,
								    "order_code"  	=> '',
								    "price"  		=> $price,
								    "time"  		=> TIME_NOW,
								    "payment_time"  => 0,
								    "error_text"  	=> '',
								    "payment_status"=> 0,//0:chờ thanh thoán; 1: lỗi;2: thành công
								    "sent_mail"  	=> 0,
								    "mobile"  		=> $this->check_mobile($mobile),
								);
								
			$payid = DB::insert("payment_ebp",$payment_ebp);
										
			if($payid)
			{
				$order_code         = "{$service_code}_$payid";
				
				if(DB::update("payment_ebp",array("order_code" => $order_code),"id=$payid"))
				{
		            //Tạo link thanh toán đến Soha Payment
		            $url= SohaPay::buildCheckoutUrl($return_url, $transaction_info, $order_code, $price, $order_email,EBP_MERCHANT_SITE_CODE,EBP_SECURE_CODE);
		            echo $url;
		            exit;
		     	}
	     	}
	     }
	     
	     echo "error_service";
         exit;
    }
    
    function ebu_premium_payment()
    {
        if(!User::is_login())
        {
			echo "not_login";
			exit;
		}

		if(User::is_block() || !User::isPremium())
		{
			echo "no_perm";
			exit;
		}
        
        $service_code	= strtoupper(Url::get('service_code'));
        
        $user			= DB::select("user","id=".User::id());
        
        if($service_code && isset(SohaPay::$ebp[$service_code]))
        {
            $pay_info   = "Mua dịch vụ $service_code (".SohaPay::$ebp[$service_code]['des']." trị giá ". number_format(SohaPay::$ebp[$service_code]['price'],0,'','.')." VNĐ)";
            
            $price		= (int)SohaPay::$ebp[$service_code]['price'];
            $up_number 	= SohaPay::$ebp[$service_code]['value'];

            $money_quota = $user['money_quota'] - $user['money_used'];
            
            if($money_quota * 1000 < $price)//Hết hạn mức tiền mua
            {
            	echo "over";
            	exit;
            }
            else 
            {
	            $payment_premium = array(
									    "log_id"  		=> 0,
									    "user_id"  		=> User::id(),
									    "user_name"  	=> User::user_name(),
									    "type"  		=> 1,//Loại dịch vụ (1:EBU, 2: EBD,3:scs,4:cpc)
									    "pay_info"  	=> $pay_info,
									    "price"  		=> $price,
									    "time"  		=> TIME_NOW,
									    "status"  		=> 0,//0:chưa thanh toán; 1: đã thanh toán; 2: hủy giao dịch, xóa
										);
										 		
	            if(DB::query("UPDATE user SET up_item=up_item+$up_number, money_used=money_used+" . ceil($price/1000) . " WHERE id={$user['id']}"))
	            {
	            	User::getUser($user['id'],0,1);
	    		
	                $up_log 		= array(
												'user_id'		=> (int)$user['id'],
												'user_name'		=> $user['user_name'],
												'admin_id'		=> 4,
												'admin_name'	=> 'admin',
												'time'			=> TIME_NOW,
												'up_count' 		=> $up_number,//Số lượt up cộng
												'up_before' 	=> $user['up_item'],//Số lượt up trước
												'up_after' 		=> ($user['up_item'] + $up_number),//Số lượt up sau
												'price' 		=> $price,
												'type' 			=> 5, //0:Tiền mặt;1:thu tại nhà;2: chuyển khoản;3: Free, KM; 5:trả sau; 8: Online
												'note' 			=> '"'.$service_code.' '.$user['user_name'].'" - '.$pay_info
											);
	            	
					//insert
	                $payment_premium['log_id'] = DB::insert("up_log",$up_log);
	            }
	            else
	            {
	            	echo "error";
	            	exit;
	            }
									
				if(DB::insert("payment_premium",$payment_premium))
				{
					echo $money_quota - ceil($price/1000);
					exit;
				}
			}
	     }
	     
	     echo "error_service";
         exit;
    }
    
    function ebd_premium_payment()
    {
        if(!User::is_login())
        {
			echo "not_login";
			exit;
		}

		if(User::is_block() || !User::isPremium())
		{
			echo "no_perm";
			exit;
		}
        
        $service_code	= strtoupper(Url::get('service_code'));
        
        $user			= DB::select("user","id=".User::id());
        $item_id		= (int)Url::get('item_id');
        
        if($service_code && isset(SohaPay::$ebp[$service_code]))
        {
            $pay_info   = "Mua dịch vụ $service_code (".SohaPay::$ebp[$service_code]['des']." trị giá ". number_format(SohaPay::$ebp[$service_code]['price'],0,'','.')." VNĐ)";
            
            $price		= (int)SohaPay::$ebp[$service_code]['price'];
            $up_number 	= SohaPay::$ebp[$service_code]['value'];

            $money_quota = $user['money_quota'] - $user['money_used'];
            
            if($money_quota * 1000 < $price)//Hết hạn mức tiền mua
            {
            	echo "over";
            	exit;
            }
            else 
            {
            	$item = Item::get_item($item_id);

            	if(!$item || ($item && $item['status'] == -1))
            	{
            		echo "not_exist";
            		exit;
            	}
            	
	            $payment_premium = array(
									    "log_id"  		=> 0,
									    "user_id"  		=> User::id(),
									    "user_name"  	=> User::user_name(),
									    "type"  		=> 2,//Loại dịch vụ (1:EBU, 2: EBD,3:scs,4:cpc)
									    "pay_info"  	=> $pay_info,
									    "price"  		=> $price,
									    "time"  		=> TIME_NOW,
									    "status"  		=> 0,//0:chưa thanh toán; 1: đã thanh toán; 2: hủy giao dịch, xóa
										);

	            if(DB::query("UPDATE user SET money_used=money_used+" . ceil($price/1000) . " WHERE id={$user['id']}"))
	            {
	            	 $sms_item_up_auto = array(
														'item_id'		=> (int)$item_id,
														'up_total' 		=> $up_number,//Số lượt up còn
														'up_number' 	=> $up_number,//Số lượt up ban đầu
														'sms_number'	=> $this->check_mobile($user["mobile_phone"]),
														'time'			=> TIME_NOW,
														'status' 		=> 1,
														'note' 			=> '"'.$service_code.' '.$item_id.'" - '.$pay_info,
														'type' 			=> 5//1:sms, 2:admin, 3:SohaPay
													);
	    		
					//insert
	                $payment_premium['log_id'] = DB::insert("sms_item_up_auto",$sms_item_up_auto);
	            }
	            else
	            {
	            	echo "error";
	            	exit;
	            }
									
				if(DB::insert("payment_premium",$payment_premium))
				{
					echo $money_quota - ceil($price/1000);
					exit;
				}
			}
	     }
	     
	     echo "error_service";
         exit;
    }
    
	function check_mobile($mobile)
	{
		$mobile 			= str_replace(array(' ','.',',','+'), '', $mobile);
	
		$listValidPhone = array('09','012','016','0188','0199','849','8412','8416','84188','84199');//Các đầu số check
		
		$isNum  		= false;
		
		foreach($listValidPhone as $v)
		{
			$checkNum 	= substr($mobile ,0 , strlen($v));
			
			if(in_array($checkNum,$listValidPhone))
			{
				if(strpos($mobile,'0')  === 0)
				{
					$mobile = "84".substr($mobile,1);
				}
				
				if((strpos($mobile,'849')  === 0 && strlen($mobile) == 11) || (strpos($mobile,'841')  === 0 && strlen($mobile) == 12)){
					return $mobile;
				}
				return '';
			}
		}
		
		return '';
	}

    function check_item_id(){
        $json['error'] = "";
        $json['cat_id'] = 0;
        $json['cat_name'] = '';
        $json['level_1_cat_id'] = 0;
        $json['level_1_cat_name'] = '';
        $json['help'] = 0;
        $json['name'] = 0;
        $json['title'] = 0;


        if(!User::is_login()){
			$json['error'] = "not_login";
            echo json_encode($json);
			exit();
		}

		if(User::is_block()){
            $json['error'] = "no_permission";
            echo json_encode($json);
			exit();
		}

        $user       = User::$current->data;
        $item_id    = Url::get('item_id', 0);
        $item       = Item::get_item($item_id);

        if($item){
            //Check trạng thái tin và quyền thao tác:
            if ($item['status'] != 1)//Tin bị kiểm duyệt
            {
                if ((in_array($item['status'], array(0, 2, 3, 5))))//Nếu tin bị ẩn || kiểm duyệt || tin ko trung thực || tin chưa được chứng thực trong danh mục yêu cầu chứng thực
                {
                    $json['error'] = "item_invalid";
                    echo json_encode($json);
                    exit();
                } elseif ($item['status'] == -1 && !User::have_permit(ADMIN_ITEM)) {//Nếu tin ở trạng thái xóa
                    $json['error'] = "item_not_exist";
                    echo json_encode($json);
                    exit();
                }
            }else{

                //check cat
                $countCat = DB::count('category', "id IN ({$item['category_id']},{$item['level_1_catid']}) AND parent_id=104");
                if($countCat){
                    $json['error'] = "error_cat";
                    echo json_encode($json);
                    exit();
                }
                $countItemVip = DB::count('item_vip', "item_id=$item_id AND status=1 AND time_end > ".TIME_NOW);
                if($countItemVip){
                    $json['error'] = "vip_exist";
                    echo json_encode($json);
                    exit();
                }
            }
        }else{
            $json['error'] = "item_not_exist";
            echo json_encode($json);
            exit();
        }

		//lay thong tin nguoi dang tin va tieu de
		$json['name'] = $item['user_name'];
        $json['title'] = $item['name'];
        $json['id'] = $item['id'];
		
        if($user['user_name'] != $item['user_name']){
            $json['help'] = 1;
        }
        $json['cat_id'] = $item['category_id'];
        $json['level_1_cat_id'] = $item['level_1_catid'];

        $json['name_'.$json['cat_id']] = CGlobal::$allCategories[$item['category_id']]['name'];
        $json['name_'.$json['level_1_cat_id']] = CGlobal::$allCategories[$item['level_1_catid']]['name'];

        foreach(SohaPay::$vip as $key => $val){
            if(strpos(','.$val['ids'].',', ','.$item['category_id'].',') !== false){
                $json['price_'.$json['cat_id']] = $val['price'];
            }

            if(strpos(','.$val['ids'].',', ','.$item['level_1_catid'].',') !== false){
                $json['price_'.$json['level_1_cat_id']] = $val['price'];
            }
        }

        $json['error'] = "success";
        echo json_encode($json);
        exit;
    }
    
    function payment_vip_finish(){
        if(!User::is_login())
        {
			echo "not_login";
			exit;
		}

		if(User::is_block())
		{
			echo "no_permission";
			exit;
		}

        $user       = User::$current->data;

        $item_id		= (int)Url::get('item_id', 0);
        $vip_day		= Url::get('vip_day', '');
        $cat_id         = (int)Url::get('cat_id', 0);
        $full_name		= Url::get('full_name');
        $mobile			= Url::get('mobile');
        $item = false;

        //get item info
        if($item_id){
            $item       = Item::get_item($item_id);
        }

        if($item){
            //Check trạng thái tin và quyền thao tác:
            if ($item['status'] != 1)//Tin bị kiểm duyệt
            {
                if ((in_array($item['status'], array(0, 2, 3, 5))))//Nếu tin bị ẩn || kiểm duyệt || tin ko trung thực || tin chưa được chứng thực trong danh mục yêu cầu chứng thực
                {
                    echo "item_invalid";
                    exit();
                } elseif ($item['status'] == -1 && !User::have_permit(ADMIN_ITEM)) {//Nếu tin ở trạng thái xóa
                    echo "item_not_exist";
                    exit();
                }
            }
        }else{
            echo "item_not_exist";
            exit();
        }

        if(!$cat_id){
            echo "catid_not_exist";
            exit;
        }

        if(!$full_name || !$mobile){//Phải nhập tên và số điện thoại liên hệ
            echo "error_info";
            exit;
        }

        $countItemVip = DB::count('item_vip', "item_id=$item_id AND status=1 AND time_end > ".TIME_NOW);
        if($countItemVip){
            echo "vip_exist";
            exit();
        }

        foreach(SohaPay::$vip as $key => $val){
            if(strpos(','.$val['ids'].',', ','.$cat_id.',') !== false){
                $price = $val['price'];
                $type = $val['type'];
                $service_code = $key;
            }
        }

        $return_url         = WEB_ROOT."payment_vip_complete.html?item_id=$item_id&cat_id=$cat_id&mobile=$mobile&vip_day=$vip_day";
        $transaction_info   = "$full_name [ {$user['user_name']} ] Thanh toán Dịch vụ mua tin vip trị giá ". number_format($price,0,'','.')." VNĐ) vào ngày $vip_day cho tin có ID $item_id của {$item['user_name']}, số ĐT liên hệ: $mobile";
        $order_email        = $user['email'];


        $payment_ebp = array(
						"item_id"  		=> $item_id,
						"log_id"  		=> 0,
                        "vip_config"    => $cat_id.",".$vip_day,
						"user_id"  		=> $user['id'],
						"user_name"  	=> $user['user_name'],
						"service_type"  => $type,
						"service_code"  => $service_code,
						"payment_info"  => $transaction_info,
						"order_code"  	=> '',
						"price"  		=> $price,
						"time"  		=> TIME_NOW,
						"payment_time"  => 0,
						"error_text"  	=> '',
						"payment_status"=> 0,//0:paying; 1: lỗi;2: thành công
						"sent_mail"  	=> 0,
						"mobile"  		=> $this->check_mobile($mobile),
					);

        $payid = DB::insert("payment_ebp",$payment_ebp);

        if($payid)
        {
            $order_code         = "{$service_code}_$payid";

            if(DB::update("payment_ebp",array("order_code" => $order_code),"id=$payid"))
            {
                //Tạo link thanh toán đến Soha Payment
                $url= SohaPay::buildCheckoutUrl($return_url, $transaction_info, $order_code, $price, $order_email,VIP_MERCHANT_SITE_CODE, VIP_SECURE_CODE);
                echo $url;
                exit;
            }
        }
    }

    function check_slot_vip(){
        $json['error'] = "";


        if(!User::is_login()){
			$json['error'] = "not_login";
            echo json_encode($json);
			exit();
		}

		if(User::is_block()){
            $json['error'] = "no_permission";
            echo json_encode($json);
			exit();
		}

        $user       = User::$current->data;
        $cat_id     = Url::get('cat_id', 0);
        $vip_day    = Url::get('vip_day', 0);

        //chỉ booking trong vòng từ 1-7 ngày
        if(strtotime($vip_day) > (TIME_NOW + (7*24*60*60)) && !User::is_root()){
            $json['error'] = "over_7_day";
            echo json_encode($json);
			exit();
        }
        
        if($cat_id){
            $arrCat = DB::select_all('item_vip', "(catid=$cat_id OR level_1_catid = $cat_id) AND status = 1 AND time_end > ".TIME_NOW);
            if(is_array($arrCat) && !empty($arrCat) > 0){
                $i = 0;
                if(strtotime($vip_day) <= strtotime(date('Y-m-d'))){
                    $json['error'] = "before_time_now";
                }else{
                    foreach($arrCat as $key=>$val){
                        if($val['time_start'] <= strtotime($vip_day) && $val['time_end'] >= strtotime($vip_day)){
                            $i++;
                        }
                    }
                    if($i >= 2){
                        $json['error'] = "over_slot";
                    }
                }
            }else{
                if(strtotime($vip_day) <= strtotime(date('Y-m-d'))){
                    $json['error'] = "before_time_now";
                }
            }
        }

        echo json_encode($json);
        exit();
    }

    function display_date_ordered(){
        $orderInfo = array();

        if(!User::is_login()){
			$json['error'] = "not_login";
            echo json_encode($json);
			exit();
		}

		if(User::is_block()){
            $json['error'] = "no_permission";
            echo json_encode($json);
			exit();
		}

        $user       = User::$current->data;
        $cat_id     = Url::get('cat_id', 0);

        if($cat_id){
            $arrCat = DB::select_all('item_vip', "(catid=$cat_id OR level_1_catid = $cat_id) AND status = 1 AND time_end > ".TIME_NOW);
            if(is_array($arrCat) && count($arrCat) > 0){
                $cout = 0;
                for($i = 1; $i<=7;$i++){
                    $j = 0;
                    $time = TIME_NOW+($i*86400);
                    foreach($arrCat as $key=>$val){
                        if($val['time_start'] <= $time && $val['time_end'] >= $time){
                            $j++;
                        }
                    }
                    if($j < 2){
                        $orderInfo[$cout] = array(
                            'title' => "Còn chỗ",
                            'start' => date("Y/m/d", $time),
                            'end'   => date("Y/m/d", $time)
                        );
                        $cout++;
                    }else{
                        $orderInfo[$cout] = array(
                            'title' => "Hết chỗ",
                            'className' => 'book',
                            'start' => date("Y/m/d", $time),
                            'end'   => date("Y/m/d", $time)
                        );
                        $cout++;
                    }
                }
            }else{
                $cout = 0;
                for($i = 1; $i<=7;$i++){
                    $time = TIME_NOW+($i*86400);
                        $orderInfo[$cout] = array(
                            'title' => "Còn trống",
                            'start' => date("Y/m/d", $time),
                            'end'   => date("Y/m/d", $time)
                        );
                        $cout++;
                }
            }

            echo json_encode($orderInfo);
        }
    }

    //Mua lượt up cho user
    function card_payment(){
        $json['error'] = "";
        $json['errorShow'] = "";
        $json['arrReturn'] = "";
        $json['errNum'] = 0;
        $json['up_number'] = 0;
        
        if(!User::is_login()){
			$json['error'] = "not_login";
            echo json_encode($json);
			exit();
		}

		if(User::is_block()){
            $json['error'] = "no_permission";
            echo json_encode($json);
			exit();
		}

        $user           = User::$current->data;
        $card_type      = Url::get('card_type');
        $card_code      = Url::get('card_code');
        $pay_full_name  = Url::get('pay_full_name');
        $pay_mobile     = Url::get('pay_mobile');

        $transaction_info = "Mua lượt up bằng thẻ cào ($card_type) cho $pay_full_name ({$user['user_name']}), SDT: $pay_mobile, Email: {$user['email']}";
        
        //insert vao payment_cards
        $aryCard = array(
            'up_log_id'     => 0,
            'user_id'       => $user['id'],
            'user_name'     => $user['user_name'],
            'email'         => $user['email'],
            'phone'         => $pay_mobile,
            'card_code'     => $card_code,
            'card_type'     => $card_type,
            'time_add'      => TIME_NOW,
            'order_info'    => $transaction_info,
            'error_text'    => '',
            'payment_status'=> 0,
            'order_code'    => '',
            'price'         => 0,
            'type'          => 1 //1: mua cho tai khoan, 2: mua cho tin
        );

        $cardId = DB::insert('payment_cards', $aryCard);

        if($cardId){
            $order_code = "card_{$cardId}";
            DB::update('payment_cards', array('order_code' => $order_code), "id=$cardId");
            
            $arrReturn = SohaPay::doChargeCard($card_code, $card_type, $transaction_info, $order_code, $user['email'], $pay_mobile, CARD_MERCHANT_SITE_CODE, CARD_SECURE_CODE);
            if(!empty($arrReturn)){
                //tao key cho memcache
                $key = 'errCard'.$user['id'];
                if(isset($arrReturn['response_code'])){
               
                    $error_text = SohaPay::getResponseDescriptionMobileCard($arrReturn['response_code']);
                    $json['errorShow'] = SohaPay::showResponseMobileCard($arrReturn['response_code']);

                    if($arrReturn['response_code'] == 1){ //thành công

                        //lấy giá trị thẻ nạp và số lượt up
                        $price = $arrReturn['price'];
                        $up_number = SohaPay::$card[$price]['value'];
                        $json['up_number'] = $up_number;

                        //Công lượt up
                        $user_OnDb = User::getUser($user['id'],1);
                        if(DB::query("UPDATE user SET up_item=up_item+$up_number WHERE id={$user['id']}"))
                        {
                            User::getUser($user['id'],0,1);
                            $up_log 		= array(
                                                        'user_id'		=> (int)$user_OnDb['id'],
                                                        'user_name'		=> $user_OnDb['user_name'],
                                                        'admin_id'		=> 4,
                                                        'admin_name'	=> 'admin',
                                                        'time'			=> TIME_NOW,
                                                        'up_count' 		=> $up_number,//Số lượt up cộng
                                                        'up_before' 	=> $user_OnDb['up_item'],//Số lượt up trước
                                                        'up_after' 		=> $user_OnDb['up_item'] + $up_number,//Số lượt up sau
                                                        'type' 			=> 6, //6: nạp bằng card
                                                        'price'         => (int)$price,
                                                        'note' 			=> $transaction_info
                                                    );

                            //insert
                            $upLogId = DB::insert("up_log",$up_log);

                            $numErr = AZMemcache::do_get("card:$key");
                            $numErr = ($numErr) ? $numErr : 1;
                            //update trang thai thanh cong cho bang payment_card
                            DB::update('payment_cards', array("up_log_id" => $upLogId, "time_payment" => strtotime($arrReturn['payment_time']),"up_number" => $up_number, 'error_text' => $error_text, 'payment_status' => 1, 'order_code' => $order_code, 'price' => $price, 'num_err' => $numErr), "id=$cardId");

                            //xoa cache
                            if(MEMCACHE_ON){
                                AZMemcache::do_remove("card:$key");
                            }

                            $json['arrReturn'] = $arrReturn;
                            echo json_encode($json);
                            exit;
                        }
                    }else{// Lỗi
                        if(MEMCACHE_ON){
                            $numErr = AZMemcache::do_get("card:$key");
                            $numErr = ($numErr) ? $numErr : 1;
                            AZMemcache::do_put("card:$key",$numErr+1, 86400);
                        }

                        if($numErr > 2 && $numErr < 5){
                            $json['errorShow'] .= '<br/>Bạn đã nhập sai '.$numErr.' lần liên tiếp. Nếu bạn nhập sai mã số 5 lần liên tiếp tài khoản của bạn sẽ bị khoá.<br><br>';
                        }
                        if($numErr >= 5 && !User::is_admin() && !User::is_root()){
                            $day_block = 1;
                            $time_start = mktime(24,0,0,date('m'),date('d'),date('Y'));
                            $time_expire = $time_start+$day_block*24*3600;
                            $reason_block = "Nhập sai mã thẻ điện thoại 5 lần liên tiếp";

                            if(DB::query("UPDATE user SET block_time=$time_expire WHERE id = {$user['id']}")){
                                DB::insert('user_lock',array('time'=>TIME_NOW,'time_expire'=>$time_expire,'user_id'=>$user['id'],'user_name'=>$user['user_name'],'type'=>0,'note'=>$reason_block,'admin_id'=>4,'admin_name'=>'admin'));

                                // Kiem duyet tin khi khoa thanh vien
                                $arr_data = array('user_id'=>$user['id'],
                                          'reason_invalid'=>'Khóa thành viên nên khóa tất cả Topic, '.$reason_block
                                          );
                                $this->lockItemWhenLockAccount($arr_data, 1);
                                // end kiem duyet tin khi khoa thanh vien
                            }
                            $json['errorShow'] .= '<br/>Bạn đã bị khoá tài khoản 1 ngày do nhập sai mã số 5 lần liên tiếp.<br><br>';

                            //xoa cache
                            if(MEMCACHE_ON){
                                AZMemcache::do_remove("card:$key");
                            }
                            User::LogOut();
                        }

                        DB::update('payment_cards', array('error_text' => $error_text, 'payment_status' => 2, 'order_code' => $order_code, 'num_err' => $numErr), "id=$cardId");
                        $json['error'] = 'error';
                        echo json_encode($json);
                        exit;
                    }
                }
            }//if(!empty($arrReturn))
            $json['error'] = 'error';
            $json['errorShow'] = "Có lỗi hệ thống nạp card";
            echo json_encode($json);
            exit;
        }//if($cardId)
        $json['error'] = 'error';
        $json['errorShow'] = "Có lỗi kết nối với cơ sở dữ liệu";
        echo json_encode($json);
        exit;
    }
    
    //Mua lượt up cho tin id
    function card_payment_item()
    {
        $json['error'] = "";
        $json['errorShow'] = "";
        $json['arrReturn'] = "";
        $json['up_number'] = 0;
        $json['title'] = 0;

        if(!User::is_login()){
			$json['error'] = "not_login";
            echo json_encode($json);
			exit();
		}

		if(User::is_block()){
            $json['error'] = "no_permission";
            echo json_encode($json);
			exit();
		}

        $user           = User::$current->data;
        $card_type      = Url::get('card_type');
        $card_code      = Url::get('card_code');
        $pay_full_name  = Url::get('pay_full_name');
        $pay_mobile     = Url::get('pay_mobile');
        $item_id        = (int)Url::get('item_id',0);

        $transaction_info = "Mua lượt up bằng thẻ cào ($card_type) cho tin co ID: $item_id, của $pay_full_name ({$user['user_name']}), SDT: $pay_mobile, Email: {$user['email']}";

        //insert vao payment_cards
        $aryCard = array(
            'user_id'       => $user['id'],
            'user_name'     => $user['user_name'],
            'email'         => $user['email'],
            'phone'         => $pay_mobile,
            'card_code'     => $card_code,
            'card_type'     => $card_type,
            'time_add'      => TIME_NOW,
            'order_info'    => $transaction_info,
            'error_text'    => '',
            'payment_status'=> 0,
            'order_code'    => '',
            'price'         => 0,
            'type'          => 2 //1: mua cho tai khoan, 2: mua cho tin
        );

        $cardId = DB::insert('payment_cards', $aryCard);

        if($cardId)
        {
            $order_code = "card_{$cardId}";
            DB::update('payment_cards', array('order_code' => $order_code), "id=$cardId");
            
            $arrReturn  = SohaPay::doChargeCard($card_code, $card_type, $transaction_info, $order_code, $user['email'], $pay_mobile, CARD_MERCHANT_SITE_CODE, CARD_SECURE_CODE);
            
            if(!empty($arrReturn))
            {
                //tao key cho memcache
                $key 				= 'errCard'.$user['id'];
                $error_text 		= SohaPay::getResponseDescriptionMobileCard($arrReturn['response_code']);
                $json['errorShow'] 	= SohaPay::showResponseMobileCard($arrReturn['response_code']);

                if($arrReturn['response_code'] == 1) //thành công
                {
                    //lấy giá trị thẻ nạp và số lượt up
                    $price 				= $arrReturn['price'];
                    $up_number 			= SohaPay::$card[$price]['value'];
                    $json['up_number'] 	= $up_number;

                    $sms_item_up_auto 	= array(
                                                'item_id'		=> (int)$item_id,
                                                'up_total' 		=> $up_number,//Số lượt up còn
                                                'up_number' 	=> $up_number,//Số lượt up ban đầu
                                                'sms_number'	=> $this->check_mobile($pay_mobile),
                                                'time'			=> TIME_NOW,
                                                'status' 		=> 1,
                                                'note' 			=> $transaction_info,
                                                'type' 			=> 3//1:sms, 2:admin, 3:SohaPay
                                            );

                    //insert
                    $sms_item_up_auto_id = DB::insert("sms_item_up_auto",$sms_item_up_auto);

                    if($sms_item_up_auto_id){

                        //lấy số lần nhập của user
                        $numErr = AZMemcache::do_get("card:$key");
                        $numErr = ($numErr) ? $numErr : 1;
                        //update trang thai thanh cong cho bang payment_card
                        DB::update('payment_cards', array("sms_item_up_auto_id" => $sms_item_up_auto_id, "time_payment" => strtotime($arrReturn['payment_time']),"up_number" => $up_number, 'error_text' => $error_text, 'payment_status' => 1, 'order_code' => $order_code, 'price' => $price, 'num_err' => $numErr), "id=$cardId");

                        //xoa cache
                        if(MEMCACHE_ON){
                            AZMemcache::do_remove("card:$key");
                        }

                        $json['arrReturn'] = $arrReturn;
                        echo json_encode($json);
                        exit;
                    }
                }
                else
                {// Lỗi
                    if(MEMCACHE_ON){
                        $numErr = AZMemcache::do_get("card:$key");
                        $numErr = ($numErr) ? $numErr : 1;
                        AZMemcache::do_put("card:$key",$numErr+1, 86400);
                    }

                    if($numErr > 2 && $numErr < 5){
                        $json['errorShow'] .= '<br/>Bạn đã nhập sai '.$numErr.' lần liên tiếp. Nếu bạn nhập sai mã số 5 lần liên tiếp tài khoản của bạn sẽ bị khoá.<br><br>';
                    }
                    if($numErr >= 5 && !User::is_admin() && !User::is_root()){
                        $day_block = 1;
                        $time_start = mktime(24,0,0,date('m'),date('d'),date('Y'));
                        $time_expire = $time_start+$day_block*24*3600;
                        $reason_block = "Nhập sai mã thẻ điện thoại 5 lần liên tiếp";

                        if(DB::query("UPDATE user SET block_time=$time_expire WHERE id = {$user['id']}")){
                            DB::insert('user_lock',array('time'=>TIME_NOW,'time_expire'=>$time_expire,'user_id'=>$user['id'],'user_name'=>$user['user_name'],'type'=>0,'note'=>$reason_block,'admin_id'=>4,'admin_name'=>'admin'));

                            // Kiem duyet tin khi khoa thanh vien
                            $arr_data = array('user_id'=>$user['id'],
                                      'reason_invalid'=>'Khóa thành viên nên khóa tất cả Topic, '.$reason_block
                                      );
                            $this->lockItemWhenLockAccount($arr_data, 1);
                            // end kiem duyet tin khi khoa thanh vien
                        }
                        $json['errorShow'] .= '<br/>Bạn đã bị khoá tài khoản 1 ngày do nhập sai mã số 5 lần liên tiếp.<br><br>';

                        //xoa cache
                        if(MEMCACHE_ON){
                            AZMemcache::do_remove("card:$key");
                        }
                        User::LogOut();
                    }

                    DB::update('payment_cards', array('error_text' => $error_text, 'payment_status' => 2, 'order_code' => $order_code, 'num_err' => $numErr), "id=$cardId");
                    $json['error'] = 'error';
                    echo json_encode($json);
                    exit;
                }
            }//if(!empty($arrReturn))
            $json['error'] = 'error';
            $json['errorShow'] = "Có lỗi hệ thống nạp card";
            echo json_encode($json);
            exit;
        }//if($cardId)
        $json['error'] = 'error';
        $json['errorShow'] = "Có lỗi kết nối với cơ sở dữ liệu";
        echo json_encode($json);
        exit;
    }

    function lockItemWhenLockAccount($value=array(),$is_lock=1){ // $is_lock = 1: lock, $is_lock = 0: Unlock

		$user_id 	= $value["user_id"];
		$reason_invalid = isset($value["reason_invalid"])?$value["reason_invalid"]:"";

		if($user_id){
			$user = User::getUser($user_id);
		}

		if($is_lock==0 && User::have_permit(array(ADMIN_USER))){
			$sql = 'SELECT id, admin_id, time FROM user_lock WHERE user_id = '.$user_id.' AND type = 0 ORDER BY id DESC LIMIT 1';
			$user_invalid = DB::fetch($sql);

			if(isset($user_invalid["id"])){
				$sql = "SELECT * FROM item WHERE user_id = $user_id AND state = 1";
				$re  = DB::query($sql);
				while($item = mysql_fetch_assoc($re)){
					$sql = "SELECT user_id, lock_time FROM item_lock WHERE item_id = {$item['id']} ORDER BY id DESC LIMIT 1";
					$re_lock = DB::query($sql);
					$item_lock = mysql_fetch_assoc($re_lock);

					if($item_lock["lock_time"]==$user_invalid["time"] && $item_lock["user_id"]==$user_invalid["admin_id"]){
						if(MEMCACHE_ON){
							$item_memcache = AZMemcache::do_get("item:{$item['id']}");
							$item_memcache['state'] = 0;
							AZMemcache::do_put("item:".$item_memcache['id'],$item_memcache);
						}
						DB::update('item',array('state'=>0),"id={$item['id']}");
					}
				}
			}
		}
		elseif($is_lock == 1){// chi thuc hien voi khoa theo ngay

			$sql_item = 'SELECT id FROM item WHERE user_id = '.$user_id.' AND status = 1 AND state=0';
			$re_item=DB::query($sql_item);

			while ($item = mysql_fetch_assoc($re_item)){
				$sql_insert = "INSERT INTO item_lock (item_id, user_id 	,user_name, lock_time, reason_lock) VALUES ({$item['id']},".User::id().",'".User::user_name()."',".TIME_NOW.",'".$reason_invalid."')";
				DB::query($sql_insert);
			}

			if(MEMCACHE_ON){
				$sql 	= "SELECT * FROM item WHERE user_id = $user_id AND status = 1";
				$re 	= DB::query($sql);
				while($item_memcache = mysql_fetch_assoc($re)){
					$item_memcache['state'] 	= 1;
					AZMemcache::do_put("item:".$item_memcache['id'],$item_memcache);
				}
			}

			DB::update('item',array('state'=>"1"),'user_id = '.$user_id.' AND status = 1');

			$receiver_user 		=  User::getUser($user_id);
			$link_help = 'http://help.enbac.com/index.php/Quy_%C4%91%E1%BB%8Bnh_%C4%91%C4%83ng_tin';
			$title_pm = 'Thông báo từ EnBac';

			$content_pm = 'Tất cả tin đăng của bạn đã bị khóa với lý do: '.$reason_invalid.'

			Đề nghị bạn hãy thực hiện đúng các quy định của Én Bạc.

			Xin cảm ơn bạn.

			Vui lòng không trả lời tin nhắn này!';

			AZLib::Send_pm(User::id(), User::user_name(), $receiver_user, $title_pm, $content_pm,true);
		}
	}
	
	function payment_bill()
	{
		if(!User::is_login())
        {
			echo "not_login";
			exit;
		}

		if(User::is_block())
		{
			echo "no_perm";
			exit;
		}
        
        $bill_id 		= Url::get("bill_id");
        $full_name		= Url::get('full_name');
        $mobile			= Url::get('mobile');
        
        $user			= User::$current->data;
        
        if($bill_id)
        {
        	if(!$full_name || !$mobile)//Phải nhập tên và số điện thoại liên hệ
            {
                echo "error_info";
                exit;
            }
            
            $arr 		= explode(",",$bill_id);
			$id_arr 	= array();
			
			foreach ($arr as $payid)
			{
				$id_arr[$payid] = $payid;
			}
			
			$p_premium 	= array();
			
			#################################################################################
			#Lấy ra bản các bản ghi và kiểm tra
			$re 		= DB::query("SELECT * FROM payment_premium WHERE id IN($bill_id)");
			
			$price = 0;
			
			if($re)
			{
				while ($row = mysql_fetch_assoc($re))
				{
					if($row['user_id'] == User::id() && $row['status'] == 0)
					{
						if(isset($id_arr[$row['id']]))
						{
							unset($id_arr[$row['id']]);
						}
						
						$price += $row['price'];
						
						$p_premium[$row['id']] = $row;
					}
				}
			}
			
			if($id_arr || $price == 0)
			{
				echo 'error_service';
				exit;
			}
			
            //$order_code         = "{$service_code}_{$user['user_name']}_".TIME_NOW;
            $return_url         = WEB_ROOT."personal.html?cmd=bill_payment&bill_id=$bill_id";
            
            $transaction_info   = "Thanh toán hóa đơn trả sau cho các GD trả sau có mã $bill_id, trị giá ". number_format($price,0,'','.')." VNĐ) cho $full_name ({$user['user_name']}), số ĐT liên hệ: $mobile";

            $payment_ebp = array(
								    "item_id"  		=> 0,
								    "log_id"  		=> $bill_id,
								    "user_id"  		=> User::id(),
								    "user_name"  	=> User::user_name(),
								    "service_type"  => 2,//Dịch vụ (1:EBU, 2:Premium Bill, 3: EBD)
								    "service_code"  => "Bill",
								    "payment_info"  => $transaction_info,
								    "order_code"  	=> '',
								    "price"  		=> $price,
								    "time"  		=> TIME_NOW,
								    "payment_time"  => 0,
								    "error_text"  	=> '',
								    "payment_status"=> 0,//0:chờ thanh thoán; 1: lỗi;2: thành công
								    "sent_mail"  	=> 0,
								    "mobile"  		=> $this->check_mobile($mobile),
								);
								
			$payid = DB::insert("payment_ebp",$payment_ebp);
										
			if($payid)
			{
				$order_code         = "Bill_$payid";
				
				if(DB::update("payment_ebp",array("order_code" => $order_code),"id=$payid"))
				{
		            //Tạo link thanh toán đến Soha Payment
		            $url= SohaPay::buildCheckoutUrl($return_url, $transaction_info, $order_code, $price, $user['email'],EBP_MERCHANT_SITE_CODE,EBP_SECURE_CODE);
		            echo $url;
		            exit;
		     	}
	     	}
	     }
	     
	     echo "error_service";
         exit;
	}
	
	function get_cart()
	{
		$data = array('msg'=>'');
		
		if(User::is_login())
		{
			if(User::level())
			{
				$data['cart_id'] 	= 0;
				$data['s_total'] 	= 0;
				$data['cart_item'] 	= array();
				
				$cart = DB::select("cart", "user_id=".User::id()." AND status=1 ORDER BY id DESC");
				
				if($cart)
				{
					$data['cart_id'] 	= $cart['id'];
					
					$re = DB::query("SELECT id, type, price, service_code,checked FROM cart_services WHERE cart_id = {$cart['id']} ORDER BY id DESC");
					
					if($re)
					{
						while ($row = mysql_fetch_assoc($re))
						{
							$data['cart_item'][$row['id']] = $row;
						}
						
						$data['s_total'] = count($data['cart_item']);
					}
					
					if($data['s_total'] != $cart['num_s'])
					{
						DB::update("cart",array("num_s"=>$data['s_total']),"id={$cart['id']}");
					}
				}
				
				echo json_encode($data);
				exit;
			}
		}
		else 
		{
			$data['msg'] = 'not_login';
			echo json_encode($data);
			exit;
		}
		
		$data['msg'] = 'no_perm';
		echo json_encode($data);
		exit;	 	 
	}
	
	function add_to_cart()
	{
		$data = array('msg'=>'');
		
		if(User::is_login())
		{
			if(User::level())
			{
				$cart 			= false;
				
				$cart_id 		= (int)Url::get("cart_id");
				$service_code 	= Url::get("service_code");
				
				if($cart_id)//Đã có giỏ hàng
				{
					$cart = DB::select("cart", "id=$cart_id");
					
					if(!$cart && $cart && $cart['user_id'] != User::id && $cart['status']!=1)//status: 1:chờ thanh toán;2: đang thanh toán; 3:Đã thanh toán;4: Lỗi
					{
						echo 'error';
						exit;
					}
				}
				else//Chưa có giỏ hàng =>insert giỏ hàng
				{
					$cart = array(
									'user_id' 		=> User::id(),
									'user_name' 	=> User::user_name(),
									'time_c' 		=> TIME_NOW,
									'time_m' 		=> 0,
									'time_pay' 		=> 0,
									'price' 		=> SohaPay::$ebp[$service_code]['price'],
									'num_s' 		=> 1,//Tổng dịch vụ có trong giỏ
									'status' 		=> 1,//Trạng thái: 1:chờ thanh toán;2: đang thanh toán; 3:Đã thanh toán;4: Lỗi
									'pay_type' 		=> 0,//Kiểu thanh toán:1:Chuyển khoản, tiền mặt;2:Online;3:Card;4:SMS;5:trả sau;
									'note'	 		=> '',
									);
					$cart_id = 	DB::insert("cart",$cart);			
				}
				
				//cart_services
				$cart_services = array(
										'cart_id' 		=> $cart_id,
										'user_id' 		=> User::id(),
										'user_name' 	=> User::user_name(),
										'time_c' 		=> TIME_NOW,
										'time_m' 		=> 0,
										'time_pay' 		=> 0,
										'type' 			=> 1,//1:EBU;2:EBD;3:VIP;4:SCS;5:Bill
										'service_code' 	=> $service_code,
										'price' 		=> SohaPay::$ebp[$service_code]['price'],
										'checked' 		=> 1,//1:Chọn mua;2:ko chọn;
										'status' 		=> 1,//1:Chưa TT;2:Đã TT
										'log_id' 		=> 0,
										'note'	 		=> '',
									);
				
				$id = DB::insert("cart_services",$cart_services);
				
				$data['id'] 		= $id;
				$data['cart_id'] 	= $cart_id;
				
				echo json_encode($data);
				exit;;
			}
		}
		else 
		{
			$data['msg'] = 'not_login';
			echo json_encode($data);
			exit;
		}
		
		$data['msg'] = 'no_perm';
		echo json_encode($data);
		exit;
	}
	
	
	function update_to_cart()
	{
		$data = array('msg'=>'');
		
		if(User::is_login())
		{
			if(User::level())
			{
				$cart 			= false;
				$cart_item 		= false;
				
				$cart_item_id 	= (int)Url::get("cart_item_id");
				$cart_id 		= (int)Url::get("cart_id");
				$service_code 	= Url::get("service_code");
				
				if($cart_id)//Đã có giỏ hàng
				{
					$cart = DB::select("cart", "id=$cart_id");
				}
				
				if(!$cart && $cart && $cart['user_id'] != User::id && $cart['status']!=1)//status: 1:chờ thanh toán;2: đang thanh toán; 3:Đã thanh toán;4: Lỗi
				{
					$data['msg'] = 'error';
					echo json_encode($data);
					exit;
				}
				
				if($cart_item_id)//Đã có giỏ hàng
				{
					$cart_item = DB::select("cart_services", "id=$cart_item_id");
				}
				
				if(!$cart_item && $cart_item && $cart_item['user_id'] != User::id && $cart['status']!=1)//status: 1:Chưa TT;2:Đã TT
				{
					$data['msg'] = 'error';
					echo json_encode($data);
					exit;
				}
				
				//cart_services
				$cart_services = array(
										'cart_id' 		=> $cart_id,
										'time_m' 		=> TIME_NOW,
										'type' 			=> 1,//1:EBU;2:EBD;3:VIP;4:SCS;5:Bill
										'service_code' 	=> $service_code,
										'price' 		=> SohaPay::$ebp[$service_code]['price'],
										'checked' 		=> 1,//1:Chọn mua;2:ko chọn;
										'status' 		=> 1,//1:Chưa TT;2:Đã TT
										'log_id' 		=> 0,
										'note'	 		=> '',
									);
				
				$id = DB::update("cart_services",$cart_services,"id=$cart_item_id");
				
				echo json_encode($data);
				exit;;
			}
		}
		else 
		{
			$data['msg'] = 'not_login';
			echo json_encode($data);
			exit;
		}
		
		$data['msg'] = 'no_perm';
		echo json_encode($data);
		exit;
	}
	
	function del_cart()
	{
		$data = array('msg'=>'');
		
		if(User::is_login())
		{
			if(User::level())
			{
				$cart 			= false;
				$cart_item 		= false;
				
				$cart_item_id 	= (int)Url::get("cart_item_id");
				
				$cart_id 		= (int)Url::get("cart_id");
				
				$service_code 	= Url::get("service_code");
				
				if($cart_id)//Đã có giỏ hàng
				{
					$cart = DB::select("cart", "id=$cart_id");
				}
				
				if(!$cart && $cart && $cart['user_id'] != User::id && $cart['status']!=1)//status: 1:chờ thanh toán;2: đang thanh toán; 3:Đã thanh toán;4: Lỗi
				{
					$data['msg'] = 'error';
					echo json_encode($data);
					exit;
				}
				
				if($cart_item_id)//Đã có giỏ hàng
				{
					$cart_item = DB::select("cart_services", "id=$cart_item_id");
				}
				
				if(!$cart_item && $cart_item && $cart_item['user_id'] != User::id && $cart['status']!=1)//status: 1:Chưa TT;2:Đã TT
				{
					$data['msg'] = 'error';
					echo json_encode($data);
					exit;
				}
				
				DB::delete("cart_services","id=$cart_item_id");
				
				echo json_encode($data);
				exit;;
			}
		}
		else 
		{
			$data['msg'] = 'not_login';
			echo json_encode($data);
			exit;
		}
		
		$data['msg'] = 'no_perm';
		echo json_encode($data);
		exit;
	}
}
?>